package com.smart_campus.sys.mapper;

import com.smart_campus.sys.common.DataGridView;
import com.smart_campus.sys.common.ResultObj;
import com.smart_campus.sys.domain.User;
import com.smart_campus.sys.domain.UserEstimate;
import com.smart_campus.sys.domain.UserInfo;
import com.smart_campus.sys.vo.UserANDRoleANDDeptVO;
import com.smart_campus.sys.vo.UserVo;
import org.apache.ibatis.annotations.Param;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 * @Author:Omega
 * @Date:2020/6/6 15:14
 */
@Repository
@Transactional
public interface UserMapper {

    /**
     * 登录时查询登录名获取信息
     *
     * @param loginname
     * @return
     */
    User querUserByLoginName(String loginname);

    /**
     * 通过手机号查询信息
     *
     * @param Phone
     * @return
     */
    User querUserByPhone(String Phone);

    /**
     * 添加用户
     *
     * @param user
     */
    User insertUser(User user);


    /**
     * 查询全部用户
     *
     * @return List<User>
     */
    List<Map> selectUser(UserVo userVo);

    /**
     * 删除用户
     *
     * @param id
     * @return int
     */
    int deleteUser(Integer id);

    /**
     * 删除用户详情
     *
     * @param id
     * @return int
     */
    int deleteUserinfo(Integer id);

    /**
     * 删除对应id用户角色相关表的信息
     *
     * @param uid
     * @return int
     */
    int deleteUserRole(Integer uid);

    /**
     * 添加对应id用户角色相关表的信息
     *
     * @param uidi
     * @param ridi
     * @return int
     */
    int insertUserRole(@Param("uidi") Integer uidi, @Param("ridi") Integer ridi);

    /**
     * 修改用户表
     *
     * @param userANDRoleANDDeptVO
     * @return int
     */
    int updateUser(UserANDRoleANDDeptVO userANDRoleANDDeptVO);

    /**
     * 修改用户详情表
     *
     * @param userANDRoleANDDeptVO
     * @return int
     */
    int updateinfoUser(UserANDRoleANDDeptVO userANDRoleANDDeptVO);

    /**
     * 修改可用
     *
     * @param id
     * @param available
     * @return
     */
    int updateAvailable(@Param("id") Integer id, @Param("available") Integer available);


    /**
     * 重置密码
     * @param id
     * @param pass
     * @return
     */
    int updateUserPwd(@Param("id") Integer id, @Param("pass") String pass);

    /** 查询当前用户的信息
     * @param id
     * @return Map
     */
    Map getCurrentUser(Integer id);

    /**
     * 头像上传
     * @param userInfo
     * @return int
     */
    int updateFilt(UserInfo userInfo);

    /**
     * 查询
     * @param
     * @return
     */
    List<Map> queryAllUserForList();

    /**
     * 查询排序码的值
     * @return
     */
    int querMax();

    /**通过用户名 登录名 身份证查询信息
     * @param username
     * @param loginname
     * @param identity
     * @return
     */
    Map selectUserVerify (@Param("username")String username,@Param("loginname")String loginname,@Param("identity")String identity );

    /**更新用户信息
     * @param user
     * @return
     */
    boolean updatePhonePassword(User user);

    Map getUser(Integer id);

    int insertstaff(User user);


}